import dayjs from "dayjs"
import duration from "dayjs/plugin/duration"

dayjs.extend(duration)

const INVALID_DATE = "N/A"

/** 格式化日期时间 */
export function formatDateTime(datetime: string | number | Date = "", template: string = "YYYY-MM-DD HH:mm:ss") {
  const day = dayjs(datetime)
  return day.isValid() ? day.format(template) : INVALID_DATE
}

// param: YYYY-MM-DD格式时间
export function parseSearchDate(param: string) {
  const date: Date = new Date(param)
  date.setDate(date.getDate() + 1)
  return dayjs(date).format("YYYY-MM-DD")
}

/**
 * 将秒数转换为时分秒格式
 * @param seconds 秒数
 * @returns 格式化后的时间字符串 (HH时mm分ss秒)
 */
export function parseSecondToFormat(seconds: number): string {
  if (!seconds || seconds < 0) return '00时00分00秒'

  const duration = dayjs.duration(seconds, 'seconds')
  const hours = duration.hours()
  const minutes = duration.minutes()
  const secs = duration.seconds()

  // 超过24小时显示总小时数
  if (duration.asHours() >= 24) {
    const totalHours = Math.floor(duration.asHours())
    return `${totalHours.toString().padStart(2, '0')}时${minutes.toString().padStart(2, '0')}分${secs.toString().padStart(2, '0')}秒`
  }

  return `${hours.toString().padStart(2, '0')}时${minutes.toString().padStart(2, '0')}分${secs.toString().padStart(2, '0')}秒`
}
